<?php
function comprobarFecha($fecha)  //formato dd/mm/aaaa
{
	if($fecha=="")
		return true;	
	
	$vector_fecha = explode("/",$fecha);
	
	if($vector_fecha[0]<1 || $vector_fecha[0]>31 || strlen($vector_fecha[0])!=2 || !is_numeric($vector_fecha[0])) // para los dias
		return false;

	if($vector_fecha[1]<1 || $vector_fecha[1]>12 || strlen($vector_fecha[1])!=2 || !is_numeric($vector_fecha[1]))  // para los meses
		return false;
	
	if($vector_fecha[2]<1900 || $vector_fecha[2]>2500 || strlen($vector_fecha[2])!=4 || !is_numeric($vector_fecha[2]))  //para los aï¿œos
		return false;
	
	return true;	
}

function comprobarHora($hora)  //formato hh:mm
{
	if($hora==":")
		return true;	

	$vector_hora = explode(":",$hora);
	
	if($vector_hora[0]<0 || $vector_hora[0]>23 || strlen($vector_hora[0])!=2 || !is_numeric($vector_hora[0])) // para las horas
		return false;

	if($vector_hora[1]<0 || $vector_hora[1]>59 || strlen($vector_hora[1])!=2 || !is_numeric($vector_hora[1]))  // para los minutos
		return false;
	
	return true;	
}

function comprobarMail($email) {
 /*  	$mail_correcto = 0; 
   	//compruebo unas cosas primeras 
   	if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ 
      	 if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { 
         	 //miro si tiene caracter . 
         	 if (substr_count($email,".")>= 1){ 
            	 //obtengo la terminacion del dominio 
            	 $term_dom = substr(strrchr ($email, '.'),1); 
            	 //compruebo que la terminación del dominio sea correcta 
            	 if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ 
               	 //compruebo que lo de antes del dominio sea correcto 
               	 $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); 
               	 $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); 
               	 if ($caracter_ult != "@" && $caracter_ult != "."){ 
                  	 $mail_correcto = 1; 
               	 } 
            	 } 
         	 } 
      	 } 
   	} 
   	if ($mail_correcto) 
      	 return true; 
   	else 
      	 return false; */


	if(filter_var($email, FILTER_VALIDATE_EMAIL))
   	 return true; 
	else 
   	 return false; 
} 

function comprobarMovil($movil) {
	if(!is_numeric($movil) || strlen($movil)!="9" || substr($movil,0,1)!="6")
		return false;
	else
		return true;
} 

function comprobarCCC($numeroCuenta){

	if(!is_numeric($numeroCuenta) || strlen($numeroCuenta)!=20) return false;

	$IentOfi = substr($numeroCuenta,0,8);
	$InumCta = substr($numeroCuenta,10,10);
	$ccc3 = substr($numeroCuenta,8,2);

	$APesos = Array(1,2,4,8,5,10,9,7,3,6); // Array de "pesos"
	$DC1=0;
	$DC2=0;
	$x=8;
	while($x>0) {
		$digito=$IentOfi[$x-1];
		$DC1=$DC1+($APesos[$x+2-1]*($digito));
		$x = $x - 1;
	}
	$Resto = $DC1%11;
	$DC1=11-$Resto;
	if ($DC1==10) $DC1=1;
	if ($DC1==11) $DC1=0;              // Dï¿œgito control Entidad-Oficina

	$x=10;
	while($x>0) {
		$digito=$InumCta[$x-1];
		$DC2=$DC2+($APesos[$x-1]*($digito));
		$x = $x - 1;
	}
	$Resto = $DC2%11;
	$DC2=11-$Resto;
	if ($DC2==10) $DC1=1;
	if ($DC2==11) $DC1=0;         // Dï¿œgito Control C/C

	$DigControl=($DC1)."".($DC2);   // los 2 nï¿œmeros del D.C.
	
	if($DigControl==$ccc3)
		return true;
	else
		return false;
}

function comprobarNIF($cifnif)
{
    $vnif;
	$vdni;
	$letranif;
	$numero;
	$letra;
//	$cifnif = quita_espacios(cifnif)
	$cifnif = strtoupper($cifnif);
	$letranif = substr($cifnif,0,1);
	if (!is_numeric($letranif))
	{
		if ($letranif != "X") 
		{
			return false;
		}
		else
		{
			$cifnif = substr($cifnif,1);
		}
	}
	$vdni=substr($cifnif,0,strlen($cifnif)-1); //Numeros del DNI
	if (strlen($vdni) > 8)
	{
		return false;
	}
	$vnif= substr($cifnif,strlen($cifnif)-1,1); //Letra del DNI

	$numero= (int) ($vdni / 23);
	$numero *= 23;
	$numero= $vdni - $numero;
	
	switch ($numero){
		case 0:{ $letra="T"; break;}
		case 1:{ $letra="R"; break;}
		case 2:{ $letra="W"; break;}
		case 3:{ $letra="A"; break;}
		case 4:{ $letra="G"; break;}
		case 5:{ $letra="M"; break;}
		case 6:{ $letra="Y"; break;}
		case 7:{ $letra="F"; break;}
		case 8:{ $letra="P"; break;}
		case 9:{ $letra="D"; break;}
		case 10:{ $letra="X"; break;}
		case 11:{ $letra="B"; break;}
		case 12:{ $letra="N"; break;}
		case 13:{ $letra="J"; break;}
		case 14:{ $letra="Z"; break;}
		case 15:{ $letra="S"; break;}
		case 16:{ $letra="Q"; break;}
		case 17:{ $letra="V"; break;}
		case 18:{ $letra="H"; break;}
		case 19:{ $letra="L"; break;}
		case 20:{ $letra="C"; break;}
		case 21:{ $letra="K"; break;}
		case 22:{ $letra="E"; break;}
	}
	if ($letra != $vnif)
		return false;

	return true;
}

function vacio($var){

	if(strlen(trim($var))=="0") return true;

	return false;
}

function es_bisiesto ($anio)
{
	$resultado=false;
	// Para que sea bisiesto debe ser divisible entre cuatro
	if (($anio % 4)==0)
	{
		 $resultado=true;
		 // ¿ Es un fin de siglo ?
		 if (($anio % 100)==0)
		{
			// Si es un fin de siglo es bisiesto tan solo si es múltiplo
			// de 400
			if (($anio % 400)==0)
				$resultado=true;
			else
				$resultado=false;
		}
	}
	return ($resultado);
}
?>
